# 字符串
# 字符串是不可变对象，字符串的方法都不会改变原字符串的数据

# 1.常用函数：
import random

# s="hElloworld1"
# print(s.count('l'))
# print(s.startswith('h'))
# print(s.endswith('!'))
# print(s.find('o'))#返回查询到的第一个o字母的索引
# print(s.lower())
# print(s.upper())
# print(s.replace('l','L',1))
# print(s.split('o'))
# print(s.strip())
# print(s.rstrip())
# print(s.lstrip())
# #十一个is函数
# print(s.isdigit())#是否为数字
# print(s.isalnum())#是否为字母或数字
# print(s.isalpha())#是否为英文字母
# print(s.islower())

#字符串格式化
# s="{} {} 250"
# print(s.format(250,"500-250"))

# string="hElloworld1"
# for i in string:
#     print(i)

#列表
# 1.常用函数
# list_find=['apple','banana','ben',1,2,3]
# print(list_find.index(1))
# print(list_find.count('banana'))
# list_find.append("中午")
# print(list_find)
# list_find.insert(1,"位置1")
# print(list_find)
#
# list_del=[1,2,3,4,"apple",5,6,7,8]
# list_del.pop()#删除最后一个元素
# print(list_del)
# list_del.remove("apple")
# print(list_del)
# del list_del[0]
# print(list_del)
# list_find.extend(list_del)
# print(list_find)

# list_sort = [1,3,4,2,9]
# list_sort.sort()
# print(list_sort)
# list_sort.reverse()
# print(list_sort.__len__())

# 2.列表生成式
# print("普通的列表生成式".center(50,'-'))
# list1 = [i for i in range(5)]
# print(list1)
# list2 = [i*i for i in range(10,20)]
# print(list2)
#
# print("带判断的列表生成式".center(50,'-'))
# list3 = [i for i in range(10) if i%2==0]
# print(list3)
#
# print("嵌套循环的列表生成式".center(50,'-'))
# list4 = [x*y for x in range(5) for y in range(5)]
# print(list4)
# list_find2 = ['apple','banana','ben',1,2,3]
# for i in list_find2:
#     print(i)

#字典
#dict_data = {1:"苹果","饮料":"雪碧","是否成功":True}
# dict_data.clear()
# print(dict_data.get("是否成功"))
# print(dict_data.get(55))
# print(dict_data.items())
# print(dict_data.keys())
# print(dict_data.values())
# print(dict_data.pop(1))
# print(dict_data.popitem())
# dict_data.update({1:"同键名更新",2:"新键名添加"})
# del dict_data["饮料"]
# for i in dict_data:
#     print(dict_data.get(i))

#字典是无序的

#集合
set_data = set(['a','b',2,True])
set_data1 = set(['iii'])
# print(set_data.pop())#随机删除一个元素然后返回被删除的元素值
# list_data = {'a','d'}
# set_data.update(list_data)
# set_data.add('f')
# set_data.clear()
# set_data.remove('a')
# set_data.discard(22)
# print(set_data.difference(set_data1))#取左边有的而右边没有的元素
# print(set_data.intersection(set_data1))#取都存在的交集元素
# print(set_data.issubset(set_data1))#判断左边是否是右边的子集
# print(set_data.issuperset(set_data1))#判断左边是否是右边的父集
# print(set_data1.symmetric_difference(set_data))#取差集
# print(set_data1.union(set_data))#取并集

# for i in set_data:
#     print(i)

# iter_tool = set_data.__iter__()
# while True:
#     try:
#         item = iter_tool.__next__()
#         print(iter_tool)
#     except StopIteration:
#         breakpoint()

#元组
# 元组（tuple）是 Python 中另一个重要的序列结构，和列表类似，元组也是由一系列按特定顺序排序的元素组成。
# 元组和列表（list）的不同之处在于：
# 列表的元素是可以更改的，
#
# 包括修改元素值，删除和插入元素，所以列表是可变序列；
# 而元组一旦被创建，它的元素就不可更改了，所以元组是不可变序列。
# 元组也可以看做是不可变的列表，通常情况下，元组用于保存无需修改的内容。

#在 Python 中，元组通常都是使用一对小括号将所有元素包围起来的，但小括号不是必须的，
# 只要将各元素用逗号隔开，Python 就会将其视为元组，请看下面的例子
#需要注意的一点是，当创建的元组中只有一个字符串类型的元素时，该元素后面必须要加一个逗号,
# 否则 Python 解释器会将它视为字符串
#除了使用( )创建元组外，Python 还提供了一个内置的函数 tuple()，用来将其它数据类型转换为元组类型。
# course = "Python教程", "士大夫感到"
# print(course)




